package com.tzbank.common.entity;

/**
 * <p>Title: ResultBean</p>
 * <p>Description: 响应Bean</p>
 * @author xuzongtian
 * @date 2018年5月3日
 */
public class ResultBean {

	/**
	 * <p>Title: ENUM_OPTFLAG</p>
	 * <p>Description: 标识处理是否成功</p>
	 * @author xuzongtian
	 * @date 2018年5月3日
	 */
	enum ENUM_OPTFLAG {
		VALUE_TRUE(true, "操作成功"), 
		VALUE_FALSE(false, "系统异常");

		private boolean val;
		private String desc;

		private ENUM_OPTFLAG(boolean val, String desc) {
			this.val = val;
			this.desc = desc;
		}

		public boolean val() {
			return this.val;
		}

		public String desc() {
			return this.desc;
		}
	}

	/**
	 * <p>Title: ENUM_CODE</p>
	 * <p>Description: 状态码(针对具体的业务码)</p>
	 * @author xuzongtian
	 * @date 2018年5月3日
	 */
	enum ENUM_CODE {
		VALUE_200("200", "处理成功"), VALUE_500("500", "系统异常");

		private String val;
		private String desc;

		private ENUM_CODE(String val, String desc) {
			this.val = val;
			this.desc = desc;
		}

		public String val() {
			return this.val;
		}

		public String desc() {
			return this.desc;
		}
	}

	/** optFlag 标识处理是否成功 */
	private boolean optFlag;

	/** code 状态码(针对具体的业务码) */
	private String code;

	/** message 描述 */
	private String message;

	/** data 数据集 */
	private Object data;

	/**
	 * <p>Title:</p>
	 * <p>Description: 带参构造</p>
	 * @param optFlag 标识处理是否成功 true-成功, false-失败
	 * @param code 状态码(针对具体的业务码)
	 * @param message 描述
	 * @param data 数据集
	 */
	public ResultBean(boolean optFlag, String code, String message, String data) {
		this.optFlag = optFlag;
		this.code = code;
		this.message = message;
		this.data = data;
	}

	/**
	 * <p>Title:</p>
	 * <p>Description: 带参构造</p>
	 * @param optFlag 标识处理是否成功 true-成功, false-失败
	 * @param code 状态码(针对具体的业务码)与描述
	 * @param data 数据集
	 */
	public ResultBean(ENUM_OPTFLAG optFlag, ENUM_CODE code, Object data) {
		this.optFlag = optFlag.val;
		this.code = code.val;
		this.message = code.desc;
		this.data = data;
	}

	/**
	 * <p>Title: isOptFlag</p>
	 * <p>Description: 标识处理是否成功</p>
	 * @return
	 */
	public boolean isOptFlag() {
		return optFlag;
	}

	/**
	 * <p>Title: setOptFlag</p>
	 * <p>Description: 标识处理是否成功</p>
	 * @param optFlag
	 */
	public void setOptFlag(boolean optFlag) {
		this.optFlag = optFlag;
	}

	/**
	 * <p>Title: getCode</p>
	 * <p>Description: 状态码(针对具体的业务码)</p>
	 * @return
	 */
	public String getCode() {
		return code;
	}

	/**
	 * <p>Title: setCode</p>
	 * <p>Description: 状态码(针对具体的业务码)</p>
	 * @param code
	 */
	public void setCode(String code) {
		this.code = code;
	}

	/**
	 * <p>Title: getMessage</p>
	 * <p>Description: 描述</p>
	 * @return
	 */
	public String getMessage() {
		return message;
	}

	/**
	 * <p>Title: setMessage</p>
	 * <p>Description: 描述</p>
	 * @param message
	 */
	public void setMessage(String message) {
		this.message = message;
	}

	/**
	 * <p>Title: getData</p>
	 * <p>Description: 数据集</p>
	 * @return
	 */
	public Object getData() {
		return data;
	}

	/**
	 * <p>Title: setData</p>
	 * <p>Description: 数据集</p>
	 * @param data
	 */
	public void setData(Object data) {
		this.data = data;
	}

}
